//package com.cert.test.conf;
//
//import org.elasticsearch.client.RestHighLevelClient;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.PropertySource;
//import org.springframework.context.annotation.Scope;
//
//@Configuration
//@PropertySource(value = "classpath:application.yml", ignoreResourceNotFound = true)
//public class ElasticsearchConfig {
//    //ES节点信息
//    public static String nodes;
//    //连接协议
//    public static String protocol;
//    //每个节点之间的分隔符","
//    public static String comma;
//    //分隔符":"
//    public static String colon;
//
//    //ES客户端连接配置
//
//    //建立连接超时时间
//    public static int connectTimeout;
//    //请求获取数据的超时时间
//    public static int socketTimeout;
//    //超时重试时间，与socketTimeout匹配
//    public static int maxRetryTimeoutMillis;
//    //从连接池中获取连接超时时间
//    public static int connectionRequestTimeout;
//    //连接池最大连接数
//    public static int maxConnTotal;
//    //连接最大并发数
//    public static int maxConnPerRoute;
//    //慢日志时间s
//    public static int SLOWLOG_INFO = 10;
//    //慢日志时间s
//    public static int SLOWLOG_WARN = 30;
//
//    public ElasticsearchConfig(){
//
//    }
//
//    @Value("${elasticsearch.slowlog.info}")
//    public void setSlowlogInfo(int slowlogInfo) {
//        ElasticsearchConfig.SLOWLOG_INFO = slowlogInfo;
//    }
//    @Value("${elasticsearch.slowlog.warn}")
//    public void setSlowlogWarn(int slowlogWarn) {
//        ElasticsearchConfig.SLOWLOG_WARN = slowlogWarn;
//    }
//
//    public static String getNodes() {
//        return nodes;
//    }
//
//    @Value("${elasticsearch.client.nodes}")
//    public void setNodes(String nodes) {
//        ElasticsearchConfig.nodes = nodes;
//    }
//
//    public static String getProtocol() {
//        return protocol;
//    }
//
//    @Value("${elasticsearch.client.protocol}")
//    public void setProtocol(String protocol) {
//        ElasticsearchConfig.protocol = protocol;
//    }
//
//    public static String getComma() {
//        return comma;
//    }
//
//    @Value("${elasticsearch.conf.sep.comma}")
//    public void setComma(String comma) {
//        ElasticsearchConfig.comma = comma;
//    }
//
//    public static String getColon() {
//        return colon;
//    }
//
//    @Value("${elasticsearch.conf.sep.colon}")
//    public void setColon(String colon) {
//        ElasticsearchConfig.colon = colon;
//    }
//
//    public static int getConnectTimeout() {
//        return connectTimeout;
//    }
//
//    @Value("${elasticsearch.conf.connectTimeout}")
//    public void setConnectTimeout(int connectTimeout) {
//        ElasticsearchConfig.connectTimeout = connectTimeout;
//    }
//
//    public static int getSocketTimeout() {
//        return socketTimeout;
//    }
//
//    @Value("${elasticsearch.conf.socketTimeout}")
//    public void setSocketTimeout(int socketTimeout) {
//        ElasticsearchConfig.socketTimeout = socketTimeout;
//    }
//
//    public static int getMaxRetryTimeoutMillis() {
//        return maxRetryTimeoutMillis;
//    }
//
//    @Value("${elasticsearch.conf.maxRetryTimeoutMillis}")
//    public void setMaxRetryTimeoutMillis(int maxRetryTimeoutMillis) {
//        ElasticsearchConfig.maxRetryTimeoutMillis = maxRetryTimeoutMillis;
//    }
//
//    public static int getConnectionRequestTimeout() {
//        return connectionRequestTimeout;
//    }
//
//    @Value("${elasticsearch.conf.connectionRequestTimeout}")
//    public void setConnectionRequestTimeout(int connectionRequestTimeout) {
//        ElasticsearchConfig.connectionRequestTimeout = connectionRequestTimeout;
//    }
//
//    public static int getMaxConnTotal() {
//        return maxConnTotal;
//    }
//
//    @Value("${elasticsearch.conf.maxConnTotal}")
//    public void setMaxConnTotal(int maxConnTotal) {
//        ElasticsearchConfig.maxConnTotal = maxConnTotal;
//    }
//
//    public static int getMaxConnPerRoute() {
//        return maxConnPerRoute;
//    }
//
//    @Value("${elasticsearch.conf.maxConnPerRoute}")
//    public void setMaxConnPerRoute(int maxConnPerRoute) {
//        ElasticsearchConfig.maxConnPerRoute = maxConnPerRoute;
//    }
//
//    @Bean
//    public RestHighLevelClient restHighLevelClient() {
//        return getEsClientDecorator().getRestHighLevelClient();
//    }
//
//    @Bean
//    @Scope("singleton")
//    public EsClientDecorator getEsClientDecorator() {
//        return new EsClientDecorator();
//    }
//}
